// Package sms: short message service
/**
* @Project : geektime-basic-go-study
* @File    : types.go
* @IDE     : GoLand
* @Author  : Tvux
* @Date    : 2024/10/4 17:29
**/

package sms

import "context"

// Service 发送短信的抽象，可以有很多短信供应商的实现
type Service interface {
	Send(ctx context.Context, tplId string, args []string, phones ...string) error
	GetProvider() ProviderName
}

// ProviderName 定义短信服务提供商的名称类型
type ProviderName string

// 定义各个短信服务提供商的常量名称
const (
	LocalProvider   ProviderName = "Local"   // 本地模拟实现
	TencentProvider ProviderName = "Tencent" // 腾讯云
	AliyunProvider  ProviderName = "Aliyun"  // 阿里云
	HuaweiProvider  ProviderName = "Huawei"  // 华为云
	// 可以继续添加其他厂商的常量
)
